#include <iostream>
#include <string>

using namespace std;

class my_class
{
public:
    int n;
    int *ptr;

public:
    my_class()
    {
        
    }

    my_class(my_class & C)
    {
        n = C.n;
        ptr = new int( * C.ptr);
    }

    ~my_class()
    {
    }
};
/*
浅拷贝 不通过拷贝构造函数的方式 就是浅拷贝
深拷贝 通过拷贝构造函数
*/

int main(int argc, char const *argv[])
{

    my_class C1;
    C1.n = 50;
    C1.ptr = new int(80);

    // 这一步 会自动调用拷贝构造函数
    my_class C2(C1);

    *C2.ptr = 90;

    cout << C1.n << endl;
    cout << C1.ptr << endl;
    cout << *C1.ptr << endl;

    cout << C2.n << endl;
    cout << C2.ptr << endl;
    cout << *C2.ptr << endl;

    return 0;
}
